import request from '@/utils/request'

/**
 * 获取AI对话历史列表或单个对话详情
 * @param {Number} id - 对话ID(可选)
 * @param {String} args - 查询参数(可选)，例如: page_id=1&status=completed
 */
export function Get(id, args) {
  return request({
    url: `/static_web/api/conversation/${id || ''}${args && ('?' + args) || ''}`,
    method: 'get'
  })
}

/**
 * 创建/保存AI对话历史
 * @param {Object} data - 对话数据
 * @param {Number} data.page_id - 关联页面ID
 * @param {String} data.conversation_title - 对话标题
 * @param {Array} data.messages - 消息列表 [{role: 'user/assistant', content: '...', time: '...'}]
 * @param {Object} data.context_snapshot - 上下文快照
 * @param {String} data.generated_prompt - 生成的Prompt
 */
export function Post(data) {
  return request({
    url: '/static_web/api/conversation/',
    headers: { 'content-type': 'application/json' },
    method: 'post',
    data: data
  })
}

/**
 * 更新AI对话历史
 * @param {Number} id - 对话ID
 * @param {Object} data - 更新的数据
 */
export function Put(id, data) {
  return request({
    url: `/static_web/api/conversation/${id}/`,
    headers: { 'content-type': 'application/json' },
    method: 'put',
    data: data
  })
}

/**
 * 删除AI对话历史
 * @param {Number} id - 对话ID
 */
export function Delete(id) {
  return request({
    url: `/static_web/api/conversation/${id}/`,
    method: 'delete'
  })
}

/**
 * 获取指定页面的对话列表
 * @param {Number} pageId - 页面ID
 */
export function GetByPage(pageId) {
  return Get(null, `page_id=${pageId}`)
}

/**
 * 保存当前对话
 * @param {Object} conversationData - 完整的对话数据
 */
export function SaveConversation(conversationData) {
  return Post(conversationData)
}

/**
 * 更新对话状态为已完成
 * @param {Number} id - 对话ID
 * @param {String} generatedPrompt - 生成的最终Prompt
 */
export function MarkAsCompleted(id, generatedPrompt) {
  return Put(id, {
    status: 'completed',
    generated_prompt: generatedPrompt,
    is_applied: true
  })
}
